package cn.leonis.newcoder;

/**
 * @Author Tobi
 * @Date 2021-12-15 上午12:00
 * 求最小公倍数，最小公倍数等于两数乘积除以最大公约数
 */
public class CMSolution {

    public static void main(String[] args) {
        int m = 3, n = 7;
        CMSolution solution = new CMSolution();
        System.out.println(solution.getCM(m, n));
        System.out.println(solution.getCM2(m, n));
    }

    public int getCM(int m, int n) {
        int max = (m>n)?m:n;
        int min = (m<n)?m:n;
        int i;
        for(i = min;i<=min*max;i++){
            if(i%min ==0 && i % max == 0){
                return i;
            }
        }
        return 0;

    }

    /**
     * 解法二：两数乘积除以最大公约数
     * @param m
     * @param n
     * @return
     */
    public int getCM2(int m, int n) {
        return (m * n) / gcd(m, n);
    }

    /**
     * 最大公约数
     * @return
     */
    public int gcd(int m, int n) {
        if (m % n == 0) {
            return n;
        } else {
            return gcd(n, m % n);
        }
    }
}
